//
//  HMNavigationController.swift
//  Weibo12
//
//  Created by HM on 15/12/26.
//  Copyright © 2015年 itheima. All rights reserved.
//

import UIKit

class HMNavigationController: UINavigationController {

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }
    

    override func pushViewController(viewController: UIViewController, animated: Bool) {
        print(viewController)
        
        // 要实现的功能：从第1级跳到第2级控制器里面，第2级控制器左上角显示第1级控制器的titlt
        // 从第2级往后 push 出来的新控制器左上角都显示返回
        
        
        // 判断的是什么？？？判断是否是 push 的第2级控制器？
        
        
        
        
        
        
        // 当push第2级或者更多控制器的话，就隐藏底部的 toolBar
        if childViewControllers.count > 0 {
            
            var backTitle = "返回"
            
            // 如果 childViewControllers 里面有一个控制，那么代表执行到此，就代表当前 push 进来是第2个
            if childViewControllers.count == 1 {
                // 当前 push 进来的是第2个
                
                // 取到第1个控制器的 title
                backTitle = childViewControllers.first!.title ?? "返回"
            }
            
            
            // 已抽取
//            if childViewControllers.count >= 2 {
//                // 能够进入到这个地方,就代表当前是push的时候 第3级或者更多
//                // 给第2个控制器设置返回按钮
//            }
            
            viewController.navigationItem.leftBarButtonItem = UIBarButtonItem(imageName: "navigationbar_back_withtext", title: backTitle, target: self, action: "back")
            // 隐藏 toolBar
            viewController.hidesBottomBarWhenPushed = true
        }
        
        // 执行完这一句代码，才代表 push 完成，才代表 childViewControllers 里面的值是正确
        super.pushViewController(viewController, animated: animated)
    }
    
    @objc private func back(){
        popViewControllerAnimated(true)
    }

}
